数据湖大数据处理之Lambda架构

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 作者:孟亚斌

一、简介

(一)DataStax公司

DataStax 公司长久以来被人们认为是Apache Cassandra的商业公司,在C*项目的早期,DataStax公司贡献了85%以上的代码,DataStax也是近年代码的主要贡献者,占比在40-50%左右。

最近几年,DataStax专注于把 Cassandra数据库做成云原生的数据服务平台,简称C*-as-a-serviceDataStax还推出了很多产品来帮助 Cassandra社区程序员开发,如开源的数据API网关。

 

二、大数据,数据湖,和Lambda架构简介

(一)大数据

图片 1.png

如上所示,近年来大数据的特性主要可以总结为5V5V特性如下。

l 5V定义/特性

1)体量/规模(volume)

Zetabyte (1021) era

2)速度(velocity)

物联网,移动程序,社交软件,流处理。

3)多样性(variety)

结构化,半结构化,无结构

4)准确性(veracity)

5)价值(value)

近些年来一个比较通用的对大数据特性的一个定位,体现在5v上,这代表是5个英文单词的首字母都是V字母v比如说体量和规模是volumevelocityvarietyveracityvalue

 

(二)数据湖

2.png

l  所有企业数据的集合

1)数据源和格式的多样性

数据的原始格式

2)海量数据

量大,生成速度快

l  企业数据湖架构

1)大数据获取、处理、存储和使用的框架

2)大数据技术(水平扩展和高弹性)

数据湖可以从两个层面去理解。第一个是较静态的含义,指一个企业所有数据的集合,它反映了大数据的每个方面,数据来源的多样性,数据格式的多样性,巨大的数据体量以及数据快速生成等,这些都是大数据的典型特性。

更重要的一点是,它指一个比较动态的从端到端的数据处理框架,从原始数据开始,然后到基本的数据处理,然后把它存储到企业的中心的数据库里面,接着做进一步的分析处理,产生商业决策的信息,进而让下游系统利用,数据可视化的商业智能数据科学人工智能等。

所以从整个数据的生成到最后数据被系统利用起来,整个数据处理环节可以认为是一个企业数据库很关键的组成部分。

3.png

l  快数据

1)大数据不仅仅“大”,而且“快”

2)GB/秒或TB/

3)“新鲜”数据挖掘

批处理模式没法满足要求

近年来,当人们讨论大数据的时候,经常把重点放在“快”。这个“快”不仅意味着数据是以很快的速度生成,更多意义着整个数据的处理、分析、提取,然后最后到生成数据决策信息,整个过程是近乎实时的。

 

(三)Lambda架构

4.png

l  批处理层

1)主数据管理(Single source of Truth

原始数据(raw data

不可更改的(immutable

追加更新(append only

数据准确(externally true

2)批处理视图预处理

预处理策略

l  速处理层:

1)处理新添加的数据

2)弥补批处理视图和新加数据之间的差距

l  服务层:

低延迟数据查询

高容错性(硬件问题,人为失误)

低延迟读和写(OLTP and OLAP

线性拓展

易延展性

Lambda架构是较为通用且结构较好的架构,它主要有三层。

第一个是批处理层,它和传统数据仓库的批处理概念基本一致。

第二个是速处理层,许多平台所面临的问题是对实时数据的处理分析和挖掘,它的缺点是无法像批处理层一样处理大量历史数据,所以它更侧重于分析,利用传统批处理层的方式去处理历史数据。

第三个是服务层,它包括了很多不同的数据视图,这些数据视图可以从批处理层来,也可以从实时处理层来。这些这些数据视图主要是能帮助我们在企业的数据库的分布式企业数据库、环境里面解决高容错性问题,解决低延迟读写的问题,以及帮助企业数据库架构进行线性扩展。而且当有新的技术或服务出现时,可以很容易融入到现有的Lambda架构中。

 

三、Apach CassandraSparkand PulsarLambda实现

(一)Apach Cassandra

5.png

l 分布式,非主从结构、宽列开源NoSQL数据库

l 无缝多数据中心数据复制

l 线性扩展

l 强容错、零宕机

l 可调数据一致性控制,高性能读写

l 云原生(混合云,多云)

Cassandra数据库是分布式非主从结构的宽列NoSQL数据库,因为它没有主从结构,扩展性非常好,基本上是线性的扩展,而且每个数据会有多个副本。这意味着即便是有一个服务器宕机了,还有别的数据副本来满足用户的查询要求,容错率高。

 

(二)Apach Spark

6.png

Apache Spark是用于大规模数据处理的统一分析引擎,它有以下特性:

1)高性能

100X HadoopMapReduce

2)易用,丰富的API和程序库

结构化,半结构化,无结构化数据

3)统一的,多用途数据分析处理引擎

流数据处理

机器学习

图数据库

SQL

 

(三)Apach Kafka or Pulsar

7.png

l  大规模、分布式消息/流数据处理平台

l  分开的计算层和数据存储层

更好的系统扩展和负载均衡

l  无缝跨数据中心数据复制

l  灵活的消息处理模式

发布/订阅

消息队列

混合模式

l  内置多租客系统支持

l  高性能,低延迟

目前最流行的流数据平台是Kafka,最近几年Pulsar也受到越来越多的关注。从流消息处理角度来看,KafkaPulsar非常相似,都是大规模分布式消息处理流数据平台,Pulsar的优点在于它的计算层和存储层是分开的,Kafka这两个是在一起的。

分开计算层和存储带来的优点显而易见,首先是系统的扩容性比较好,可以分开的扩容计算层和存储层。其次是计算是无状态的,所以说当扩容计算层的时候,它对系统的影响非常小,而且扩容速度极快。

 

(四)Lambda架构-Apach CassandraSparkand Pulsar

8.png

上图是用Apach CassandraSparkand Pulsar三种技术实现Lambda的架构图。

首先在批处理层,我们用 Cassandra数据库作为原始数据的主数据库,然后在速处理层我们用Pulsar来实时接受原数据的原数据流,在批处理层我们有定时的Spark Job,然后Spark Job从原始数据数据库里面读取数据进行分析和处理,接着把生成的数据放到服务层的数据库中。那么生成的服务层数据库就代表批处理数据视图,根据不同的需求可以生成不同的批处理视图,用同样的Spark Job来实现。

 

(五)Lambda架构:技术栈和实现平台

l  技术栈(全部开源)

1)Apache Cassandra

-  数据建模和CQL

-  客户端编程接口

-  编程语言:Java

2)Apache Spark

-  DataStax Spark-Cassandra连接器

-  SparkSQL

-  DataFrame

-  编程语言:Scala

3)Apache Pulsar

-  生产者和消费者客户端编程接口

-  Pulsar函数

-  DataStax Pulsar-Cassandra联结器

4)其他

-  DataStax dsbulk数据加载器

l  实现平台

1)DataStax EnterpriseDSE

-  单集群,双数据中心部署模式

1 DSE Core/Cassandra

1 DSE Analytics/Spark

2)Apache Pulsar

-  单集群部署模式

3)DataStax Studio

-  CQLSparkSQL笔记本

 

(六)演示程序-应用场景示例

9.png

l  极简化的石油钻头探测器时序数据模拟

1)每个钻探地点有多个钻探头

2)每个钻探头有两种传感器:温度和速度

3)每个传感器每隔一段时间(1/1分钟)采集一次数据

l  需要回答的商业问题(示例)

1)  监控每个钻头的健康状况,防止过热/过速

2)  批处理视图

-  记录每个钻头每日的平均温度和转速

-  每天一次批处理

3)  速处理视图

-  记录一天之内出现钻头过热和过速的情况

-  实时处理

这个事例程序的应用场景是一个非常简单的石油钻头的探测器时序的数据模拟,上图是实际数据中包含的一些数据内容,包括钻头的ID,传感器的ID,传感器的类型,以及传感器的读取时间和传感器的读取值等。

在这个场景,每个钻探地点可能会有多个站头,每个钻头有两种传感器,一种监测温度,一种监测速度,每隔一段时间传感器就会收集一次数据,然后把它发送到Lambda平台。从而监控每个钻头健康状况,防止过热和过速。

从批处理视图来看,需要记录每个钻头每日的平均温度和转速,每日处理一次。从速处理视图来看,记录最近一天之内出现的钻头过热和过速的情况,是实时处理的。

Ø 演示示例子部件

10.png

负载生成器:负责生成这些生成一个大量的模拟数据的

负载加载器:把这些生成的原始数据加载到原始数据库里面

11.png

这里主要有三个空间,第一个是对应于原始数据的主数据库表Master,然后还有一个对应批数据视图数据库表的Batchview,速处理层对应是Realtimeview

12.png

数据处理流程情况

13.png

l  第一步:预处理

1)创建C*键空间和表(C* CQL

2)生成模拟的工作负载文件(负载生成器)

l  第二步:数据加载

1)(批处理层)将源数据加载到原始数据主数据库中(负载加载器)

2)(速处理层)将源数据以消息的方式实施发送到Pulsar主题中(Pulsar消息发布器)

l  第三步:数据处理,视图数据生成

1)(批处理层)每日源数据批处理;写入批处理视图(每日Spark汇总程序)

2)(速处理层)当日源数据实时处理;写入速处理视图(Pulsar函数,Pulsar C*连接器)

l  第四步:数据分析

Spark SQL

 

四、演示

DataStax Studio

15.png

Cassandra数据库的信息,第一步先确保这些键空间删掉了以后,这里并没有需要的键空间,然后创建一些新的键空间和表。

16.png

生成一个模拟数据(CSV文件),文件生成好了以后,让负载加载器将数据加载进来。

17.png

速处理层视图里面只能看到一些最近的数据,旧的数据已经被Function函数自动过滤掉了。

第二部分:云Cassandra + DLA Spark构建轻量化数据湖解决方案演示:

18.png

第一个需要开通对象存储oss,这是因为DLA Sparkjar包需要存储在oss上。

第二步需要有一个自己的云数据库Cassandra实例。

第三步获取你Cassandra的私网连接点,CQL端口、数据库、用户名、数据库、密码,这些信息会被用到来连接Cassandra实例。

实例信息查找:

19.png

进入控制台查看

第四步需要创建一个数据表并且插入一些数据,待会用来验证Spark可以正确地连接到这张数据表里面,读取数据。

最后一步需要为DLA准备访问Cassandra实例所需要的安全组ID和交换机ID,主要是作用于DLA spark的这些Cassandra实例,这些实例它需要挂载虚拟网卡才可以访问Cassandra

20.png

交换机ID:可使用VSwith ID

21.png

安全组ID:可使用VPC ID进入专有网络ID,查询已有安全组出方向

22.png

主要依赖是Cassandra connector 2.4.2版本

23.png

24.png

代码需要刚才准备好的那些连接Cassandra实例的信息,私网连接点,CQL端口,用户名密码以及表所在的表名。

 

总结:

第一步:开通oss存储,把jar包上传到oss上;

第二步:要拥有一个Cassandra实例;

第三步:Cassandra的控制台去获取连接Cassandra所需要的信息,比如它的用户名密码以及它连接的一些信息;

第四步:准备一张测试的表用于DLA Spark连接Cassandra的测试;

第五步:网络打通所需要的两个关键点,准备一个安全组ID和交换机ID用于创建Spark的虚拟网卡。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
4天前
|
存储 分布式计算 Hadoop
大数据处理架构Hadoop
【4月更文挑战第10天】Hadoop是开源的分布式计算框架,核心包括MapReduce和HDFS,用于海量数据的存储和计算。具备高可靠性、高扩展性、高效率和低成本优势,但存在低延迟访问、小文件存储和多用户写入等问题。运行模式有单机、伪分布式和分布式。NameNode管理文件系统,DataNode存储数据并处理请求。Hadoop为大数据处理提供高效可靠的解决方案。
95 2
|
4天前
|
存储 数据可视化 数据管理
基于阿里云服务的数据平台架构实践
本文主要介绍基于阿里云大数据组件服务,对企业进行大数据平台建设的架构实践。
761 2
|
4天前
|
存储 运维 监控
|
4天前
|
消息中间件 大数据 Kafka
Kafka与大数据:消息队列在大数据架构中的关键角色
【4月更文挑战第7天】Apache Kafka是高性能的分布式消息队列,常用于大数据架构,作为实时数据管道汇聚各类数据,并确保数据有序传递。它同时也是数据分发枢纽,支持多消费者订阅,简化系统集成。Kafka作为流处理平台的一部分,允许实时数据处理,满足实时业务需求。在数据湖建设中,它是数据入湖的关键,负责数据汇集与整理。此外,Kafka提供弹性伸缩和容错保障,适用于微服务间的通信,并在数据治理与审计中发挥作用。总之,Kafka是现代大数据体系中的重要基础设施,助力企业高效利用数据。
60 1
|
4天前
|
存储 SQL 机器学习/深度学习
通用数据湖仓一体架构正当时
通用数据湖仓一体架构正当时
76 2
|
4天前
|
存储 大数据 BI
数据仓库、数据湖、湖仓一体,究竟有什么区别?
近几年大数据概念太多了,数据库和数据仓库还没搞清楚,就又出了数据湖,现在又说什么“湖仓一体”。乙方公司拼命造概念,甲方公司不管三七二十一,吭哧吭哧花钱搞数据建设。到头来发现,钱也花了,人力也投入了,但最基本的业务需求都解决不了。
|
4天前
|
存储 大数据 分布式数据库
Hudi数据湖技术引领大数据新风口(四)核心概念
Hudi数据湖技术引领大数据新风口(四)核心概念
95 1
|
4天前
|
监控 物联网 大数据
助力工业物联网,工业大数据之服务域:AirFlow的架构组件【三十二】
助力工业物联网,工业大数据之服务域:AirFlow的架构组件【三十二】
53 0
|
4天前
|
SQL 分布式计算 大数据
Hudi数据湖技术引领大数据新风口(三)解决spark模块依赖冲突
Hudi数据湖技术引领大数据新风口(三)解决spark模块依赖冲突
111 0
|
4天前
|
消息中间件 分布式计算 大数据
Hudi数据湖技术引领大数据新风口(二)编译安装
Hudi数据湖技术引领大数据新风口(二)编译安装
70 0